0 POKE646,1:POKE53272,20 1 REM THE ORIGINAL PROGRAM IS FROM THE BOOK: MORE BASIC COMPUTER GAMES 2 REM BY DAVID H. AHL, COPYRIGHT 1979 BY CREATIVE COMPUTING 4 REM THE TALKING TECHNOLOGY IS FROM SOFTWARE AUTOMATIC MOUTH (S.A.M.) 5 REM MODIFICATIONS TO ELIZA'S ROUTINES AND THE ADDING OF ITS VOICE ARE 6 REM BY MARV BERO VERSION 2.4 APR'85 8 REM THANKS GO TO JOE GOMBOC FOR HELP ON INTEGRATING THE TALKING 10 REM PLEASE NOTE: ELIZA DOES NOT LIKE VULGARITIES OR BEING SWORN AT 100 PRINT CHR$(147):PRINT:PRINT:PRINT 110 PRINT" TALKING ELIZA" 120 PRINT" [183][183][183][183][183][183][183][183][183][183][183][183][183]" 130 IFPEEK(850)<>123THENPRINT" PLEASE WAIT!" 140 IFPEEK(850)<>123THEN POKE850,123:POKE55,0:POKE56,125:CLR:LOAD"+ELIZA",8,1 150 POKE39438,72:POKE39439,64:SYS38144 160 POKE39733,255:POKE39734,255:POKE39735,255 170 PRINT " TO END PROGRAM, INCLUDE THE WORDS" 180 PRINT:PRINT " 'SHUT UP' IN YOUR RESPONSE" 190 SA$="TO END PROGRAM, INCLUDE THE WORDS SHUT UP IN YOUR RE SPONCE" 191 POKE53270,200:SYS39430:POKE53271,0 200 REM -----INITIALIZATION----- 210 DIM S(41),R(41),N(41) 220 N1=41:N2=16:N3=115:RR=0 230 FOR X=1TON1+N2+N3:READZ$:NEXT X 240 FOR X=1TON1 250 READ S(X),L:R(X)=S(X):N(X)=S(X)+L-1 260 NEXT X 270 PRINT" HI! I'M ELIZA. WHAT'S YOUR PROBLEM?":PRINT 280 SA$=" HI! I'M E LIE ZA. WHAT'S YOUR PROBLUM?" 281 POKE53270,200:SYS39430:POKE53271,0 290 REM -----USER INPUT SECTION----- 300 IF LEFT$(F$,12)="YOU CONTINUE" THEN PRINT:GOTO830 310 PRINT:INPUT" ";I$ 320 I$="[160]"+I$+" " 330 REM GET RID OF APOSTROPHES 340 FOR L=1 TO LEN(I$) 350 IF MID$(I$,L,1)="'"THENI$=LEFT$(I$,L-1)+RIGHT$(I$,LEN(I$)-L):GOTO350 360 ZW$="SHUTTING UP..." 370 IFL+7<=LEN(I$)THENIFMID$(I$,L,7)="SHUT UP"THEN39990 380 NEXT L 390 ZV$="PLEASE DON'T REPEAT YOURSELF AGAIN!" 400 IF I$=P$ THEN RR=RR+1 405 IF RR=2THEN RR=0:PRINT:PRINTZV$:SA$=ZV$:GOSUB39980:GOTO300 410 REM -----FIND KEYWORD IN I$----- 420 RESTORE 430 S=0 440 FOR K=1 TO N1 450 READ K$ 460 IF S>0 THEN 500 470 FOR L=1 TO LEN(I$)-LEN(K$)+1 480 IF MID$(I$,L,LEN(K$))=K$ THEN S=K:T=L:F$=K$ 490 NEXTL 500 NEXTK 510 IF S>0 THENK=S:L=T:GOTO530 520 K=36:GOTO760:REM NO KEYWORDS FOUND 530 REM --TAKE RIGHT PART OF STRING ANDCONJUGATE IT USING LIST OF STRINGS 540 RESTORE 550 FOR X=1 TO N1:READ Z$:NEXT X:REM SKIP KEYWORDS 560 C$=" "+RIGHT$(I$,LEN(I$)-LEN(F$)-L+1)+"[160]" 570 FOR X=1 TO N2/2 580 READ S$,R$ 590 FOR L=1 TO LEN(C$) 600 IF L+LEN(S$)>LEN(C$) THEN 650 610 IF MID$(C$,L,LEN(S$))<>S$ THEN 650 620 C$=LEFT$(C$,L-1)+R$+RIGHT$(C$,LEN(C$)-L-LEN(S$)+1) 630 L=L+LEN (R$) 640 GOTO 690 650 IF L+LEN(R$)>LEN(C$) THEN 690 660 IF MID$(C$,L,LEN(R$))<>R$ THEN 690 670 C$=LEFT$(C$,L-1)+S$+RIGHT$(C$,LEN(C$)-L-LEN(R$)+1) 680 L=L+LEN(S$) 690 NEXT L 700 NEXT X 710 IF MID$(C$,2,1)=" " THEN C$=RIGHT$(C$,LEN(C$)-1): REM ONLY 1 SPACE 720 FOR L=1 TO LEN(C$) 730 IF MID$(C$,L,1)="!" THEN C$=LEFT$(C$,L-1)+RIGHT$(C$,LEN(C$)-L):GOTO 730 740 NEXT L 750 REM USE KEYWORD # (K) TO GET REPLY 760 RESTORE 770 FOR X=1 TO N1+N2:READ Z$:NEXT X 780 FOR X=1 TO R(K): READ F$:NEXT X:REM READ RIGHT REPLY 790 R(K)=R(K)+1:IFR(K)>N(K)THENR(K)=S(K) 800 IF RIGHT$(F$,1)<>"*" THEN PRINT:PRINT F$:SA$=F$:GOSUB39980:P$=I$: GOTO 290 810 PRINT:ZZ$=LEFT$(F$,LEN(F$)-1):PRINTZZ$;C$:SA$=ZZ$+" "+C$:GOSUB39980 820 P$=I$: GOTO 290 830 ZY$="PERHAPS WHEN YOU CAN KEEP A CIVIL TONGUE WE CAN TRY AGAIN...":PRINTZY$ 840 SA$=ZY$:GOSUB39980:END 850 REM ---PROGRAMME DATA KEYWORDS--- 870 DATA "FUCK","SHIT","SCREW YOU","GO TO HELL","GODDAM" 880 DATA "CAN YOU","CAN I","YOU ARE","YOURE","I DONT","I FEEL" 890 DATA "WHY DONT YOU","WHY CANT I","ARE YOU","I CANT","I AM","IM " 900 DATA "YOU ","I WANT","WHAT","HOW","WHO","WHERE","WHEN","WHY" 910 DATA "NAME","CAUSE","SORRY","DREAM","HELLO","HI ","MAYBE" 920 DATA " NO","YOUR ","ALWAYS","THINK","ALIKE","YES","FRIEND" 930 DATA "COMPUTER","NOKEYFOUND" 940 REM STRING DATA FOR CONJUGATIONS 950 DATA " ARE "," AM ","WERE ","WAS " 960 DATA " YOU "," I ","YOUR ","MY " 970 DATA " IVE "," YOUVE "," IM ","YOURE " 980 DATA " ME "," !YOU "," MYSELF "," YOURSELF " 990 REM REPLIES 1000 DATA "PLEASE DON'T SWEAR OR CURSE" 1010 DATA "IF YOU CONTINUE TO SWEAR, I'LL HAVE TO END OUR SESSION" 1020 DATA "YOU CONTINUE TO SWEAR DESPITE MY WARNING THE SESSION IS FINISHED!" 1030 DATA"DON'T YOU BELIEVE THAT I CAN*" 1040 DATA "PERHAPS YOU WOULD LIKE TO BE ABLE TO*" 1050 DATA "YOU WANT ME TO BE ABLE TO*" 1060 DATA "PERHAPS YOU DON'T WANT TO*" 1070 DATA "DO YOU WANT TO BE ABLE TO*" 1080 DATA "WHAT MAKES YOU THINK I AM*" 1090 DATA "DOES IT PLEASE YOU TO BELIEVE THAT I AM*" 1100 DATA"PERHAPS YOU WOULD LIKE TO BE*" 1110 DATA "DO YOU SOMETIMES WISH YOU WERE*" 1120 DATA "DON'T YOU REALLY*" 1130 DATA "WHY DON'T YOU*" 1140 DATA "DO YOU WISH TO BE ABLE TO*" 1150 DATA "DOES THAT TROUBLE YOU?" 1160 DATA "TELL ME MORE ABOUT THESE FEELINGS." 1170 DATA "DO YOU OFTEN FEEL*" 1180 DATA "DO YOU ENJOY FEELING*" 1190 DATA "DO YOU REALLY BELIEVE I DON'T*" 1200 DATA "PERHAPS IN GOOD TIME I WILL*" 1210 DATA "DO YOU WANT ME TO*" 1220 DATA "DO YOU THINK YOU SHOULD BE ABLE TO*" 1230 DATA "WHY CAN'T YOU*" 1240 DATA "WHY ARE YOU INTERESTED IN WETHER OR NOT I AM*" 1250 DATA "WOULD YOU PREFER IF I WERE NOT*" 1260 DATA "PERHAPS IN YOUR FANTASIES I AM*" 1270 DATA "HOW DO YOU KNOW YOU CAN'T*" 1280 DATA "HAVE YOU TRIED?" 1290 DATA "PERHAPS YOU CAN NOW*" 1300 DATA "DID YOU COME TO ME BECAUSE YOU ARE*" 1310 DATA "HOW LONG HAVE YOU BEEN*" 1320 DATA "DO YOU BELIEVE IT IS NORMAL TO BE*" 1330 DATA "DO YOU ENJOY BEING*" 1340 DATA "WE WERE DISCUSSING YOU-- NOT ME." 1350 DATA "OH, I*" 1360 DATA "YOU'RE NOT REALLY TALKING ABOUT ME, ARE YOU?" 1370 DATA "WHAT WOULD IT MEAN TO YOU IF YOU GOT*" 1380 DATA "WHY DO YOU WANT*" 1390 DATA "SUPPOSE YOU WERE SOON TO GET*" 1400 DATA "WHAT IF YOU NEVER GOT*" 1410 DATA "I SOMETIMES ALSO WANT" 1420 DATA"WHY DO YOU ASK?" 1430 DATA "DOES THAT QUESTION INTEREST YOU?" 1440 DATA "WHAT ANSWER WOULD PLEASE YOU THE MOST?" 1450 DATA "WHAT DO YOU THINK?" 1460 DATA "ARE SUCH QUESTIONS ON YOUR MIND OFTEN?" 1470 DATA "WHAT IS IT THAT YOU REALLY WANT TO KNOW?" 1480 DATA "HAVE YOU ASKED ANYONE ELSE?" 1490 DATA "HAVE YOU ASKED THIS SORT OF QUESTION BEFORE?" 1500 DATA "WHAT ELSE COMES TO MIND WHEN YOU ASK THAT?" 1510 DATA "NAMES DON'T INTEREST ME." 1520 DATA "I DON'T CARE ABOUT NAMES-- PLEASE GO ON." 1530 DATA "IS THAT THE REAL REASON?" 1540 DATA "DON'T ANY OTHER REASONS COME TO MIND?" 1550 DATA "DOES THAT REASON EXPLAIN ANYTHING ELSE?" 1560 DATA "WHAT OTHER REASONS MIGHT THERE BE?" 1570 DATA "PLEASE DON'T APOLOGIZE!" 1580 DATA "APOLOGIES AREN'T NECESSARY." 1590 DATA "WHAT FEELINGS DO YOU HAVE WHEN YOU APOLOGIZE?" 1600 DATA "DON'T BE SO DEFENSIVE!" 1610 DATA "WHAT DOES THAT DREAM SUGGEST TO YOU?" 1620 DATA "DO YOU DREAM OFTEN?" 1630 DATA "WHICH PEOPLE APPEAR IN YOUR DREAMS?" 1640 DATA "ARE YOU DISTURBED BY YOUR DREAMS?" 1650 DATA "HOW DO YOU DO ... PLEASE STATE YOUR PROBLEM." 1660 DATA "YOU DON'T SEEM QUITE CERTAIN." 1670 DATA "WHY THE UNCERTAIN TONE?" 1680 DATA "CAN'T YOU BE MORE POSITIVE?" 1690 DATA "YOU AREN'T SURE?" 1700 DATA "DON'T YOU KNOW?" 1710 DATA "ARE YOU SAYING NO JUST TO BE NEGATIVE?" 1720 DATA "YOU ARE BEING A BIT NEGATIVE." 1730 DATA "WHY NOT?" 1740 DATA "ARE YOU SURE?" 1750 DATA "WHY NO?" 1760 DATA "WHY ARE YOU CONCERNED ABOUT MY*" 1770 DATA "WHAT ABOUT YOUR OWN*" 1780 DATA "CAN YOU THINK OF A SPECIFIC EXAMPLE?" 1790 DATA "WHEN?" 1800 DATA "WHAT ARE YOU THINKING OF?" 1810 DATA "REALLY, ALWAYS?" 1820 DATA "DO YOU REALLY THINK SO?" 1830 DATA "BUT YOU ARE NOT SURE THAT YOU*" 1840 DATA "DO YOU DOUBT THAT YOU*" 1850 DATA "IN WHAT WAY?" 1860 DATA "WHAT RESEMBLANCE DO YOU SEE?" 1870 DATA "WHAT DOES THE SIMILARITY SUGGEST TO YOU?" 1880 DATA "WHAT OTHER CONNECTIONS DO YOU SEE?" 1890 DATA "COULD THERE REALLY BE SOME CONNECTION?" 1900 DATA "HOW?" 1910 DATA "YOU SEEM QUITE POSITIVE." 1920 DATA "ARE YOU SURE?" 1930 DATA "I SEE." 1940 DATA "I UNDERSTAND." 1950 DATA "WHY DO YOU BRING UP THE TOPIC OF FREINDS" 1960 DATA "DO YOUR FRIENDS WORRY YOU?" 1970 DATA "DO YOUR FRIENDS PICK ON YOU?" 1980 DATA "ARE YOU SURE YOU HAVE ANY FRIENDS?" 1990 DATA "DO YOU IMPOSE ON YOUR FRIENDS?" 2000 DATA "PERHAPS YOUR LOVE FOR FRIENDS WORRIES YOU." 2010 DATA "DO COMPUTERS WORRY YOU?" 2020 DATA "ARE YOU TALKING ABOUT ME IN PARTIVCULAR?" 2030 DATA "ARE YOU FRIGHTENED BY MACHINES?" 2040 DATA "WHY DO YOU MENTION COMPUTERS?" 2050 DATA "WHAT DO YOU THINK MACHINES HAVE TO DO WITH YOUR PROBLEM?" 2060 DATA "DON'T YOU THINK THAT COMPUTERS CAN HELP PEOPLE?" 2070 DATA "WHAT IS IT ABOUT MACHINES THAT WORRIES YOU?" 2080 DATA "SAY, DO YOU HAVE ANY PSYCHOLOGICAL PROB-LEMS?" 2090 DATA "WHAT DOES THAT SUGGEST TO YOU?" 2100 DATA "I SEE." 2110 DATA "I'M NOT SURE I UNDERSTAND YOU FULLY." 2120 DATA "COME, COME ELUCIDATE YOUR THOUGHTS." 2130 DATA "CAN YOU ELABORATE ON THAT?" 2140 DATA "THAT IS QUITE INTERESTING." 2150 REM -----DATA TO FIND REPLY----- 2160 DATA1,3,1,3,1,3,1,3,1,3,4,3,7,2,9,4,9,4,13,4,17,3,20,3,23,2,25,3,28,3,31,4 2170 DATA31,4,35,3,38,5,43,9,43,9,43,9,43,9,43,9,43,9,52,2,54,4,58,4,62,4,66,1 2180 DATA66,1,67,5,72,5,77,2,79,4,83,3,86,6,92,4,96,6,102,7,109,7 10000 D=PEEK(186):N$="ELIZA TALK":OPEN15,D,15,"S0:"+N$:CLOSE15:SAVEN$,D:END 39980 POKE53270,200:SYS39430:POKE53271,0:RETURN 39990 PRINT:PRINTZW$:SA$=ZW$:GOSUB39980 39991 FORX=37768TO49152:POKEX,0:NEXT 40000 FORI=0TO21:POKE828+I,8+I:NEXT 40010 IFDV<8ORDV>29ORDV=8THEN40030 40020 A=PEEK(828):B=PEEK(828+DV-8):POKE828,B:POKE828+DV-8,A 40030 A$="HELLO CONNECT":FORJ=8TO29:I=PEEK(828+J-8):IFI=14THENNEXT 40040 CLOSE2:OPEN2,I,2:CLOSE2:IFSTTHEN40060 40050 CLOSE15:OPEN15,I,15,"R0:"+A$+"="+A$:INPUT#15,ER:CLOSE15:IFER=63THEN40070 40060 NEXT:PRINT"[147]":POKE53272,23:POKE186,8:NEW 40070 Q$=CHR$(34):POKE646,PEEK(53281):PRINT"[147]":POKE53272,23 40080 PRINT"[147]P[207]2048,0:P[207]44,8:P[207]43,1:P[207]56,160:P[207]55,0:CLR:L[207]"Q$A$Q$","I 40090 PRINT"RUN:":POKE631,13:POKE632,13:POKE198,2:NEW